{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "e20794dc-f079-4094-870c-265d8697e50d",
   "metadata": {},
   "source": [
    "<center><h1>时序序列的异常监测问题</h1>Author:dsy Time:2022-01-17</center>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "6821f224-1e48-4175-ba93-1cf7673cb58a",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.dates as md\n",
    "import matplotlib.pyplot as plt\n",
    "from mpl_toolkits.axes_grid1 import host_subplot\n",
    "import mpl_toolkits.axisartist as AA\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.decomposition import PCA\n",
    "from sklearn.cluster import KMeans\n",
    "from sklearn.covariance import EllipticEnvelope\n",
    "#from pyemma import msm\n",
    "from sklearn.ensemble import IsolationForest\n",
    "from sklearn.svm import OneClassSVM\n",
    "from mpl_toolkits.mplot3d import Axes3D\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "raw",
   "id": "23407235-e34f-4c21-b330-2708f1993516",
   "metadata": {},
   "source": [
    "!pip install pyemma"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8d4afbba-8dbb-4151-b83b-7894acd0c1a6",
   "metadata": {},
   "source": [
    "# 1. 数据可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "aedc606e-e346-4ded-a92f-a5e13ed51461",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>_time</th>\n",
       "      <th>value</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2021/1/21 8:00</td>\n",
       "      <td>31.393</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2021/1/21 8:01</td>\n",
       "      <td>31.827</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2021/1/21 8:02</td>\n",
       "      <td>29.186</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2021/1/21 8:03</td>\n",
       "      <td>29.460</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2021/1/21 8:04</td>\n",
       "      <td>32.143</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2021/1/21 8:05</td>\n",
       "      <td>33.185</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2021/1/21 8:06</td>\n",
       "      <td>30.411</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2021/1/21 8:07</td>\n",
       "      <td>33.866</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2021/1/21 8:08</td>\n",
       "      <td>34.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2021/1/21 8:09</td>\n",
       "      <td>31.736</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            _time   value\n",
       "0  2021/1/21 8:00  31.393\n",
       "1  2021/1/21 8:01  31.827\n",
       "2  2021/1/21 8:02  29.186\n",
       "3  2021/1/21 8:03  29.460\n",
       "4  2021/1/21 8:04  32.143\n",
       "5  2021/1/21 8:05  33.185\n",
       "6  2021/1/21 8:06  30.411\n",
       "7  2021/1/21 8:07  33.866\n",
       "8  2021/1/21 8:08  34.801\n",
       "9  2021/1/21 8:09  31.736"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv(\"data/data.csv\")\n",
    "df.head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "eb2b68be-2b0d-412c-915a-091e97bb28a4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.plot(x='_time', y='value', figsize=(20,6))\n",
    "plt.xlabel('Date time')\n",
    "plt.ylabel('Value in USD')\n",
    "plt.title('Time Series of room price by date time of search');"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "022ddc9d-35bb-422c-aa17-d5aa6aa3ebed",
   "metadata": {},
   "source": [
    "# 2. 基于聚类算法的异常检测"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1b53af87-efac-4bb9-8238-ce148e23e7c1",
   "metadata": {},
   "source": [
    "## 2.1 k-means 算法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "35f2bfab-0119-4100-92d6-3b848e238470",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(18631, 1)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = df.loc[:,'value'].values.reshape(-1,1)\n",
    "data.shape\n",
    "# data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "8a29380d-1178-44ef-9ade-0ce61eefe239",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "n_cluster = range(1, 20)\n",
    "kmeans = [KMeans(n_clusters=i).fit(data) for i in n_cluster]\n",
    "scores = [kmeans[i].score(data) for i in range(len(kmeans))]\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(20,6))\n",
    "ax.plot(n_cluster, scores)\n",
    "plt.xlabel('Number of Clusters')\n",
    "plt.ylabel('Score')\n",
    "plt.title('Elbow Curve')\n",
    "plt.show();"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "95ac5b9e-a8be-47a6-9b4d-1e4aee4056ac",
   "metadata": {},
   "source": [
    "## 2.2 基于孤立森林算法的异常检测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "56347207-28aa-4694-b766-89e3f9b2a5ce",
   "metadata": {},
   "outputs": [],
   "source": [
    "outliers_fraction = 0.01\n",
    "scaler = StandardScaler()\n",
    "np_scaled = scaler.fit_transform(data)\n",
    "data = pd.DataFrame(np_scaled)\n",
    "# train isolation forest\n",
    "model =  IsolationForest(contamination=outliers_fraction)\n",
    "model.fit(data) \n",
    "df['anomaly2'] = pd.Series(model.predict(data))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "0221a49c-961f-4b0c-8c6f-c70d9ea8f522",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABIoAAAFlCAYAAACEOwMFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABMgElEQVR4nO3deZgU1b3/8c+ZYRMwKkjUiCzuGyo4ble9csEYl8TlGpU4yqLJRFyiiTdGM0nIL7mTmMRE0ahcIrgxgsYY9V4xxjXGNQ64Ii6IzAgq4rAoDsss398fp3qd7tm6p6qZfr+ep5/uOlVd53R1Lae+deqUMzMBAAAAAAAAJVEXAAAAAAAAAIWBQBEAAAAAAAAkESgCAAAAAABAgEARAAAAAAAAJBEoAgAAAAAAQIBAEQAAAAAAACRJvaIuQFu23357GzFiRNTFAAAAAAAA6DEWLFjwqZkNyTSuoANFI0aMUE1NTdTFAAAAAAAA6DGcc7XZxnHrGQAAAAAAACQRKAIAAAAAAECAQBEAAAAAAAAkFXgfRQAAAAAAAI2NjVq+fLk2btwYdVG2KP369dPQoUPVu3fvDn+HQBEAAAAAAChoy5cv19Zbb60RI0bIORd1cbYIZqb6+notX75cI0eO7PD32r31zDk32zn3iXPujbT0S5xzbznnFjnnfpuUfpVzbolz7m3n3NeS0o8P0pY4567scAkBAAAAAEBR27hxowYPHkyQqBOccxo8eHCnW2F1pEXRbZL+KOmOpMz+Q9Ipkg40s03OuS8H6ftKmiBpP0lfkfSYc27P4Gs3SvqqpOWSXnLOPWhmb3aqtAAAAAAAoCgRJOq8riyzdlsUmdnTklanJU+VdLWZbQqm+SRIP0XSPDPbZGbvS1oi6dDgtcTMlprZZknzgmkBAAAAAAAKnnNOl19+eXz4mmuu0c9//vNQyzB27FjV1NR0ax5dferZnpKOds696Jz7h3PukCB9Z0kfJE23PEjLlg4AAAAAAFDw+vbtq/vuu0+ffvppl77f1NSU5xJ1j64GinpJGiTpcEk/lHSPy1MbMOdchXOuxjlXs2rVqnzMEgAAAJlUV0sjRkglJf69ujrqEgEAULB69eqliooKXXvtta3GLVu2TOPGjdMBBxyg8ePHq66uTpI0efJkXXDBBTrssMN0xRVXaPLkyZo6daoOP/xw7brrrnrqqad03nnnaZ999tHkyZPj85s6darKysq03377adq0aWH9REldf+rZckn3mZlJ+pdzrkXS9pJWSNolabqhQZraSE9hZjMlzZSksrIy62L5AAAA0JbqaqmiQmpo8MO1tX5YksrLoysXAADtuOwy6ZVX8jvPgw6Srruu/ekuuugiHXDAAbriiitS0i+55BJNmjRJkyZN0uzZs/W9731P999/vyT/xLbnnntOpaWlmjx5stasWaPnn39eDz74oE4++WQ9++yzuuWWW3TIIYfolVde0UEHHaSqqioNGjRIzc3NGj9+vF577TUdcMAB+f3RWXS1RdH9kv5DkoLOqvtI+lTSg5ImOOf6OudGStpD0r8kvSRpD+fcSOdcH/kOrx/MsewAAADoqspKqaFBDdpKtRrm0xoafDoAAMjoS1/6kiZOnKjrr78+Jf3555/X2WefLUk699xz9cwzz8THnXHGGSotLY0Pf+Mb35BzTqNGjdIOO+ygUaNGqaSkRPvtt5+WLVsmSbrnnns0ZswYjR49WosWLdKbb4b3LLB2WxQ55+ZKGitpe+fccknTJM2WNNs594akzZImBa2LFjnn7pH0pqQmSReZWXMwn4slPSKpVNJsM1vUDb8HAAAAHRE0if+G/ldPaLxMLiUdAIBC1ZGWP93psssu05gxYzRlypQOTT9gwICU4b59+0qSSkpK4p9jw01NTXr//fd1zTXX6KWXXtJ2222nyZMnd/oR97noyFPPvmVmO5lZbzMbamazzGyzmZ1jZvub2RgzeyJp+ioz283M9jKzh5PS55vZnsG4qu76QQAAAOiAYb4V0RManzEdAABkNmjQIJ155pmaNWtWPO3f/u3fNG/ePElSdXW1jj766C7P/7PPPtOAAQO0zTbbaOXKlXr44Yfb/1IedfXWMwAAAGzJqqqk/v1T0/r39+kAAKBNl19+ecrTz2644QbdeuutOuCAA3TnnXdq+vTpXZ73gQceqNGjR2vvvffW2WefrSOPPDIfRe4w5+8YK0xlZWVWU1MTdTEAAAB6pupquXN8x9U2fIQPEtGRNQCgAC1evFj77LNP1MXYImVads65BWZWlmn6rj71DAAAAFu68nLpnOBz0HkmAAAobtx6BgAAAAAAAEkEigAAAAAAABAgUAQAAAAAAABJBIoAAAAAAAAQIFAEAAAAAAAASQSKAAAAAAAAOuT++++Xc05vvfVWZGUYOHBgt86fQBEAAAAAAEAHzJ07V0cddZTmzp0bdVG6DYEiAAAAAADQs1RXSyNGSCUl/r26OudZrl+/Xs8884xmzZqlefPmSZKeeuopjR07Vt/85je19957q7y8XGYmSXr88cc1evRojRo1Suedd542bdokSRoxYoSuuuoqHXTQQSorK9PChQv1ta99TbvttptmzJgRz2v8+PEaM2aMRo0apQceeKBVeSZOnKj7778/PlxeXp5xus4iUAQAAAAAAHqO6mqpokKqrZXM/HtFRc7BogceeEDHH3+89txzTw0ePFgLFiyQJL388su67rrr9Oabb2rp0qV69tlntXHjRk2ePFl33323Xn/9dTU1Nenmm2+Oz2vYsGF65ZVXdPTRR2vy5Mm699579cILL2jatGmSpH79+umvf/2rFi5cqCeffFKXX355PAAVc/755+u2226TJK1bt07PPfecTjrppJx+o0SgCAAAAAAA9CSVlVJDQ2paQ4NPz8HcuXM1YcIESdKECRPit58deuihGjp0qEpKSnTQQQdp2bJlevvttzVy5EjtueeekqRJkybp6aefjs/r5JNPliSNGjVKhx12mLbeemsNGTJEffv21dq1a2Vm+vGPf6wDDjhAxx57rFasWKGVK1emlOeYY47Ru+++q1WrVmnu3Lk6/fTT1atXr5x+oyTlPgcAAAAAAIBCUVfXufQOWL16tZ544gm9/vrrcs6publZzjmddNJJ6tu3b3y60tJSNTU1tTu/2HdKSkpSvl9SUqKmpiZVV1dr1apVWrBggXr37q0RI0Zo48aNreYzceJEzZkzR/PmzdOtt97a5d+XjBZFAAAAAACg5xg2rHPpHXDvvffq3HPPVW1trZYtW6YPPvhAI0eO1D//+c+M0++1115atmyZlixZIkm68847dcwxx3Q4v3Xr1unLX/6yevfurSeffFK1tbUZp5s8ebKuu+46SdK+++7buR+VBYEiAAAAAADQc1RVSf37p6b17+/Tu2ju3Lk67bTTUtJOP/30rE8/69evn2699VadccYZGjVqlEpKSnTBBRd0OL/y8nLV1NRo1KhRuuOOO7T33ntnnG6HHXbQPvvsoylTpnT8x7TDpXeGVEjKysqspqYm6mIAAAD0WM759wKuEgIAoMWLF2ufffbp+Beqq32fRHV1viVRVZVUXt59BYxI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\n",
      "text/plain": [
       "<Figure size 1440x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# visualization\n",
    "fig, ax = plt.subplots(figsize=(20,6))\n",
    "\n",
    "a = df.loc[df['anomaly2'] == -1, ['_time', 'value']] #anomaly\n",
    "\n",
    "ax.plot(df['_time'], df['value'], color='blue', label = 'Normal')\n",
    "ax.scatter(a['_time'],a['value'], color='red', label = 'Anomaly')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "56b722ab-92de-42c5-8f5e-d6f7a7971c4f",
   "metadata": {},
   "source": [
    "## 2.3 基于支持向量机算法的异常检测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "85cb9534-f9d9-4b57-b9a9-591ea81b54d8",
   "metadata": {},
   "outputs": [],
   "source": [
    "scaler = StandardScaler()\n",
    "np_scaled = scaler.fit_transform(data)\n",
    "data = pd.DataFrame(np_scaled)\n",
    "# train oneclassSVM \n",
    "model = OneClassSVM(nu=outliers_fraction, kernel=\"rbf\", gamma=0.01)\n",
    "model.fit(data)\n",
    "df['anomaly3'] = pd.Series(model.predict(data))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "1f0ef99c-4d87-49d8-a383-b793bc6e0e2e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(20,6))\n",
    "a = df.loc[df['anomaly3'] == -1, ['_time', 'value']] #anomaly\n",
    "\n",
    "ax.plot(df['_time'], df['value'], color='blue')\n",
    "ax.scatter(a['_time'],a['value'], color='red')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0307b14e-b85b-43a0-97a5-c4d50a4b273b",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
